package com.grandtech.insurance.controller;

import com.grandtech.insurance.common.R;
import com.grandtech.insurance.domain.DbKhstatus;
import com.grandtech.insurance.domain.DbKhxx;
import com.grandtech.insurance.service.DbKhxxService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/api/v1")
public class DbKhstatusController {

    @Autowired
    private DbKhxxService dbKhxxService;

    @GetMapping("/getDbKhxxAll")
    R getDbKhxxAll(){
        DbKhxx param = new DbKhxx();
        List<DbKhxx> list = dbKhxxService.getDbKhxxAll(param);
        if(list.size()>0){
            for(DbKhxx dbKhxx : list){
                Map map = new HashMap();
                map.put("xmbm",dbKhxx.getXmbm());
                map.put("status",false);
                map.put("startTime","2020-01-02");
                map.put("endTime","2020-01-04");
                setStatus(map);
            }
        }
        return R.ok();
    }

    @PostMapping("/setStatus")
    R setStatus(@RequestBody Map map){
        if (map.get("xmbm") == null || ("").equals(map.get("xmbm"))) {
            return R.error("请传入项目编码参数");
        }
        if (map.get("status") == null || ("").equals(map.get("status"))) {
            return R.error("请传入项目状态参数");
        }
        if (map.get("startTime") == null || ("").equals(map.get("startTime"))) {
            return R.error("请传入项目开始时间参数");
        }
        if (map.get("endTime") == null || ("").equals(map.get("endTime"))) {
            return R.error("请传入项目结束事件参数");
        }
        try {

            int i = 0;
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
            Date startTime = formatter.parse(map.get("startTime").toString());
            Date endTime = formatter.parse(map.get("endTime").toString());
            DbKhstatus param = new DbKhstatus();
            String xmbm = map.get("xmbm").toString();
            param.setXmbm(xmbm);
            List<DbKhstatus> list = dbKhxxService.getDbKhstatus(param);
            if(list.size()>0){
                param = list.get(0);
                param.setStatus((boolean)map.get("status"));
                param.setStartTime(startTime);
                param.setEndTime(endTime);
                i = dbKhxxService.updateStatus(param);
            }else{
                param.setStatus((boolean)map.get("status"));
                param.setStartTime(startTime);
                param.setEndTime(endTime);
                i = dbKhxxService.insertStatus(param);
            }

            if(i>0){
                return R.ok("操作成功");
            }else{
                return R.error("操作失败");
            }

        } catch (Exception e) {
            e.printStackTrace();
            return R.error(e.getMessage());
        }
    }

}


































